package com.smedi.ismedi.organization.core.port.adapter.service;

import com.smedi.ismedi.constructionproject.api.dto.response.ProjectBasicResponse;
import com.smedi.ismedi.constructionproject.api.dto.response.resp.ProjectAssignmentResp;
import com.smedi.ismedi.constructionproject.api.dto.response.resp.ProjectResp;
import com.smedi.ismedi.organization.core.port.adapter.persistence.dto.ProjectAssignmentQuery;
import com.smedi.ismedi.organization.core.port.adapter.persistence.dto.ProjectQuery;

import java.util.List;

/**
 * @Author: xulinjun
 * @Date: 2021-6-10 20:35
 */
public interface ConstructionProjectRemoteApiService {
    /**
     * 判断行政组织下是否有分配信息存在
     *
     * @param hrOrganizationId
     * @return
     */
    Boolean checkHrOrganizationHasProject(Long hrOrganizationId);

    /**
     * 判断项目是否有效
     *
     * @param projectId
     * @return
     */
    Boolean checkProjectAvailable(Long projectId);

    /**
     * 判断项目组织是否有被用于标段配置
     *
     * @param projectOrganizationId
     * @return
     */
    Boolean checkProjectOrganizationBeUsedInBiSection(Long projectOrganizationId);

    /**
     * 判断项目组织是否有项目分配
     *
     * @param projectOrganizationId
     * @return
     */
    Boolean validateProjectOrganizationHasProjectAssignment(Long projectOrganizationId);

    /**
     * 获取项目信息
     *
     * @param projectId
     * @return
     */
    ProjectBasicResponse getProjectBasicView(Long projectId);


    List<ProjectResp> getProjectListWithoutToken(ProjectQuery projectQuery);

    List<ProjectAssignmentResp> getProjectAssignmentList(ProjectAssignmentQuery projectAssignmentQuery);
}
